#ifndef INFORMATION_H
#define INFORMATION_H

#include <QString>

/*****************************************************************************************
  @copyright 2013-2020
  @author    qiaowei
  @contact   weiweiqiao@126.com
  @version   1.0
  @date      2020-06-21
  @brief     频率信息类，存储频率及对应的扇区信息
******************************************************************************************/

class Information
{
public:
    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    构造函数，台站每个频率的信息，扇区简介、扇区频率由参数确定。
                 是否互调、互调频率默认为false、0
     @param    扇区简介
     @param    扇区频率
    ***********************************************************/
    explicit Information(QString sector_information, double freq);

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    拷贝构造函数
    ***********************************************************/
    explicit Information(const Information& value);

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    赋值操作符
    ***********************************************************/
    Information& operator = (const Information& rvalue);

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    获取扇区信息
     @return   频率对应的扇区信息，QString类型数据
    ***********************************************************/
    QString get_sector_information() const;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    获取扇区频率
     @return   频率
    ***********************************************************/
    double get_frequency() const;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    获取频率信息类包含的数据数量
     @return   4（“扇区信息”、“频率”、“是否互调”、“产生互调的频率”共4部分）
    ***********************************************************/
    int get_element_count() const;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    获取是否产生“三阶互调”的标识
     @return   true 产生互调；false 未产生互调
    ***********************************************************/
    bool get_is_inter_modulation() const;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    设置是否产生“三阶互调”的标识
     @param    is_inter_modulation 互调标识
    ***********************************************************/
    void set_is_inter_modulation(bool is_inter_modulation);

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief
    ***********************************************************/
    double get_inter_modulation_frequency() const;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    设置三阶互调的频率
     @param    inter_modulation_frequency 产生互调的频率
    ***********************************************************/
    void set_inter_modulation_frequency(double inter_modulation_frequency);

private:
    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    扇区简介
    ***********************************************************/
    QString sector_information_;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    扇区频率
    ***********************************************************/
    double frequency_;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    是否产生互调的标识，需要根据具体频率计算
    ***********************************************************/
    bool is_inter_modulation_;

    /**********************************************************
     @author   qiaowei
     @version  1.0
     @date     2020-12-31
     @brief    产生互调的频率
    ***********************************************************/
    double inter_modulation_frequency_;
};

#endif // INFORMATION_H
